]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Honor alpha range specified by pango_attr_foreground_alpha_new()
authorCarlos Garnacho <carlosg@gnome.org>
Sat, 28 Mar 2020 15:38:14 +0000 (16:38 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Sat, 28 Mar 2020 16:58:30 +0000 (16:58 +0000)
This is documented as a value between 1 and 65536. However we were passing
a 0 value for 100% transparent colors, which is interpreted as "system
inherited" in pango_renderer_get_alpha() docs.

Ensure we respect this range by specifying the minimum allowed alpha (1)
if the color is fully transparent. If someone notices this 1/65535th change
I'll ask him how many pleiades can he count.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2504
(yes, again).

src/st/st-private.c

index e75e10788b5fb643cc28a1b15b2b6e48d68e3e1a..70d31ef76c2db6abc76160107db74e10371f7709 100644 (file)
@@ -134,7 +134,16 @@ _st_set_text_from_style (ClutterText *text,
 
   if (color.alpha != 255)
     {
-      PangoAttribute *alpha = pango_attr_foreground_alpha_new (color.alpha * 255);
+      PangoAttribute *alpha;
+
+      /* An alpha value of 0 means "system inherited", so the
+       * minimum regular value is 1.
+       */
+      if (color.alpha == 0)
+        alpha = pango_attr_foreground_alpha_new (1);
+      else
+        alpha = pango_attr_foreground_alpha_new (color.alpha * 255);
+
       pango_attr_list_insert (attribs, alpha);
     }